default: arch

arch: main.o lzw.o huffman.o hashTable.o statTable.o vector.o bitStream.o dirWork.o arch.o
	g++ -Wall -g main.o lzw.o huffman.o hashTable.o statTable.o vector.o bitStream.o dirWork.o arch.o -o arch

main.o: main.cpp arch.h
	g++ -Wall -g -c main.cpp

lzw.o: lzw.cpp lzw.h variables.h hashTable.h statTable.h vector.h bitStream.h compressor.h
	g++ -Wall -g -c lzw.cpp

huffman.o: huffman.cpp huffman.h variables.h bitStream.h compressor.h
	g++ -Wall -g -c huffman.cpp

hashTable.o: hashTable.cpp hashTable.h vector.h variables.h
	g++ -Wall -g -c hashTable.cpp

statTable.o: statTable.cpp statTable.h vector.h variables.h
	g++ -Wall -g -c statTable.cpp

vector.o: vector.cpp vector.h variables.h
	g++ -Wall -g -c vector.cpp

bitStream.o: bitStream.cpp bitStream.h variables.h
	g++ -Wall -g -c bitStream.cpp

dirWork.o: dirWork.cpp dirWork.h vector.h
	g++ -Wall -g -c dirWork.cpp

arch.o: arch.cpp arch.h huffman.h lzw.h dirWork.h compressor.h
	g++ -Wall -g -c arch.cpp

clean:
	rm *.o arch
